﻿using Basic.FlowModel.DB;
using Basic.FlowModel.Flow;
using Basic.FlowModel.Node;
using Basic.FlowRemoteModel;
using Basic.FlowRemoteModel.Flow.Model;
using WeDonekRpc.Model;

namespace Basic.FlowDAL
{
    public interface IFlowListDAL : IBasicDAL<DBFlowList, long>
    {
        long Add ( FlowAdd add );
        void Enable ( DBFlowList flow, NodeSet[] sets );
        Result[] GetChildren<Result>(long sourceId) where Result : class, new();
        string GetMaxVer(long id);
        Result[] Query<Result> ( FlowQueryParam query, IBasicPage paging, out int count ) where Result : class;
        long Save ( FlowBodyAdd add );
        void SetStatus ( DBFlowList flow, FlowStatus status );
    }
}